До того, как начать
Предполагается, что Вы уже знакомы с JavaScript. Если нет, то необходимо что-то сделать с этим. Например почитать онлайн учебник: https://learn.javascript.ru/
Node.js что это?
Node.js
— это кроссплатформенная среда исполнения JavaScript с открытым исходным кодом, основанная на движке V8 компании Google и предназначенная для создания web-приложений на стороне сервера.
Установка
Для загрузки нужно перейти на официальный сайт https://nodejs.org/en/. На главной странице мы сразу увидим две возможные опции для загрузки: самая последняя версия NodeJS и LTS-версия.
Cкачиваем, устанавливаем. Там же можно найти инструкцию по утановке:
centos:1
2
3curl —silent —location https://rpm.nodesource.com/setup_9.x | sudo bash -
sudo yum -y install nodejs
sudo yum install gcc-c++ make
ubuntu:1
2
3curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
sudo apt-get install -y nodejs
sudo apt-get install -y build-essential
Проверить правильность установки можно командой:1
node --version
Команда покажет текущую версию программы.
REPL
После установки NodeJS нам становится доступным такой инструмент как REPL
.
REPL (Read Event Printed Loop) представляет возможность запуска выражений на языке JavaScript в командной строке или терминале.
Так, запустим командную строку (на Windows) или терминал (на OS X или Linux) и введем команду node
. После ввода этой команды мы можем выполнять различные выражения на JavaScript.
Пакеты в Node.js
Вкратце, пакетом в Node.js называется один или несколько JavaScript-файлов, представляющих собой какую-то библиотеку или инструмент.
npm
(аббр. node package manager) — это стандартный менеджер пакетов, автоматически устанавливающийся вместе с Node.js. Он используется для скачивания пакетов из облачного сервера npm, либо для загрузки пакетов на эти сервера.
Перед стартом проекта
Создайте директорию проекта, где будет храниться весь код. Затем откройте терминал, выполните команду для инициализации:
1 | npm init |
После ответа на вопросы в директории проекта появится файл ‘package.json’
Express
Express
- это минималистичный и гибкий веб-фреймворк для приложений Node.js, построенный на базе фреймворка connect.
Основное предназначение Express - маршрутизация и промежуточная обработка с минимальной собственной функциональностью: приложение Express, по сути, представляет собой серию вызовов функций промежуточной обработки (middleware).
Для утановки Express в терминале из директории проекта запустите команду:1
npm install express
Как это применить
Создаем файл server.js
.
Для использования фреймворка Express, необходимо подключить модуль express
, и создать приложение.
1
2var express = require('express');
var app = express();
Запустить приложение можно командой:1
2
3app.listen(8080, function(){
console.log('server start on port 8080');
})
В результате сервер запустится, но если в браузере выполнить запрос к приложению localhost:8080
, то получим ошибку:
Cannot GET /
Это происходит потому, что в программе нет ни одного маршрута.
Маршрутизация
Маршрутизация определяет, как приложение отвечает на клиентский запрос к конкретному адресу, и определенному методу HTTP запроса.
Каждый маршрут может иметь несколько обработчиков, которые выполняются при сопоставлении маршрута.
Для определения маршрута используют следующую структуру:1
app.METHOD(path, handler)
app
– экземпляр express приложенияMETHOD
– метод HTTP запросаpath
– путь на сервереhandler
– функция обработчик на указанный путь
Продолжаем применять
1 | var express = require('express'); |
Что еще?
Middleware-function
Функции промежуточной обработки (middleware
) - это функции, имеющие доступ к объекту запроса req
, объекту ответа res
и к следующей функции промежуточной обработки в цикле “запрос-ответ” приложения next
.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21var express = require('express');
var app = express();
// для регистрации middleware используется функция use, all, app.METHOD()
// 1. request - данные запроса
// 2. response - объект для управления ответом
// 3. next - следующая в конвейере обработки функция
app.use('/', function(request, response, next){
console.log('Prehandler...');
// передаем управление следующему обработчику
next();
});
app.get('/', function(request, response){
console.log('Main handler');
// завершаем ответ от сервера
response.end();
});
app.listen(8080);
Таким образом, выполнятся обе функции при обращении по корневому маршруту.
Routing
Используя класс express.Router
можно создавать модульные, монтируемые обработчики маршрутов. Экземпляр этого класса представляет комплексную систему промежуточных обработчиков и маршрутизации.1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25var express = require('express');
var app = express();
var router = express.Router();
router.route("/")
.get(function(req, res){
res.send("List of products. Get method.");
})
.post(function(req, res){
res.send("Product created. POST method.");
});
router.route("/:id")
.get(function(req, res){
res.send(`Product ${req.params.id}`);
});
app.use("/products", router);
app.get("/", function(req, res){
res.send("Главная страница");
});
app.listen(8080);
При выполении запроса localhost:8080/products
маршрут будет определяться из router
. Выполнится соответствующая функция-обработчик.
Финиш
В инструкции вы познакомились с node.js+express
. Этого будет достаточно для быстрого старта.
Для получения большей информации листайте источники.
Источники:
node:
https://nodejs.org/en/
https://itvdn.com/ru/video/node_js/express - платный ресурс к сожалению, но полезный.
https://learn.javascript.ru/screencast/nodejs - альтернатива
express:
http://expressjs.com/ru/
https://nodeguide.ru/doc/modules-you-should-know/express/
http://expressjs.com/ru/4x/api.html - api справочник express